﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ahi.Entity.Enums;
using MongoDB.Bson;
using Ahi.Entity.Interfaces;
using System.ComponentModel;

namespace Ahi.Entity
{
    public class EtkinlikEntity : BaseEntity<EtkinlikEntity>, IRaporlanabilir
    {
        #region SubClasses
        public class EtkinlikTipiEntity : TipTanimiEntity { }

        public class FotografEntity
        {
            public byte[] Fotograf { get; set; }

            public string Aciklama { get; set; }
        }

        public class KatilimciEntity
        {
            [DisplayName("Ad Soyad")]
            public string AdSoyad { get; set; }

            public string CalistigiKurum { get; set; }

            public string Gorevi { get; set; }

            public string Email { get; set; }
        }

        public class KonusmaciEntity
        {
            [DisplayName("Ad Soyad")]
            public string AdSoyad { get; set; }

            public string CalistigiKurum { get; set; }

            public string Gorevi { get; set; }

            public string Etiketler { get; set; }
        }
        #endregion

        public EtkinlikEntity()
        {
            Konusmacilar = new List<KonusmaciEntity>();
            Fotograflar = new List<FotografEntity>();
            Katilimcilar = new List<KatilimciEntity>();
        }

        public ObjectId KomisyonId { get; set; }

        public string KomisyonAdi { get; set; }

        public string EtkinlikAdi { get; set; }

        public DateTime BaslangicTarihi { get; set; }

        public DateTime BitisTarihi { get; set; }

        public EtkinlikDurumu Durum { get; set; }

        public bool ButunGun { get; set; }

        public string Aciklama { get; set; }

        public EtkinlikTipiEntity EtkinlikTipi { get; set; }

        public string Konum { get; set; }

        public List<KonusmaciEntity> Konusmacilar { get; set; }

        public List<KatilimciEntity> Katilimcilar { get; set; }

        public List<FotografEntity> Fotograflar { get; set; }

        public string Etiketler { get; set; }
    }
}
